﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace VatGia
{
    public partial class FormQLSanPham : Form
    {
        private FormMain1 frm;
        public FormQLSanPham(FormMain1 frm)
        {
            this.frm = frm;
            InitializeComponent();
            loadDSGH();
            loadLoaiSP();
            loadSP();
        }

        DataService dservice = new DataService();
        DataTable dt = new DataTable();
        public int IDSP_select;

        private void dGV_DSSanPham_SelectionChanged(object sender, EventArgs e)
        {
            for (int i = dGV_DSSanPham.SelectedRows.Count - 1; i >= 0; i--)
            {
                if (dGV_DSSanPham.SelectedRows[i].Index <= dGV_DSSanPham.Rows.Count - 1)
                {
                    IDSP_select = Int32.Parse(dGV_DSSanPham.SelectedRows[i].Cells[0].Value.ToString());
                    txtTenSP.Text = dGV_DSSanPham.SelectedRows[i].Cells[1].Value.ToString();
                    txtDGia.Text = dGV_DSSanPham.SelectedRows[i].Cells[3].Value.ToString();
                    txtDVTinh.Text = dGV_DSSanPham.SelectedRows[i].Cells[2].Value.ToString();
                    //cboxTenGH.SelectedIndex = cboxTenGH.FindStringExact( dGV_DSSanPham.SelectedRows[i].Cells[4].Value.ToString());
                    //cboxLoaiSP.SelectedIndex = cboxLoaiSP.FindStringExact(dGV_DSSanPham.SelectedRows[i].Cells[5].Value.ToString());
                    cboxTenGH.Text = dGV_DSSanPham.SelectedRows[i].Cells[4].Value.ToString();
                    txtMaSP.Text = dGV_DSSanPham.SelectedRows[i].Cells[6].Value.ToString();
                    
                }
            }
        }
        public void loadLoaiSP()
        {
            cboxLoaiSP.Items.Clear();
            dservice.Connect();
            cboxLoaiSP.DisplayMember = "TenLoai";
            cboxLoaiSP.ValueMember = "MaLoai";
            dt = dservice.ExcuteProcedureGetTable("sp_getLoaiSP", null, null);
            if (dt.Rows.Count > 0)
            {
                cboxLoaiSP.DataSource = dt;
            }
            dservice.Disconnect();
        }
        public void loadDSGH()
        {
            cboxTenGH.Items.Clear();
            dservice.Connect();
            //load tenGH
            cboxTenGH.DisplayMember = "TenGH";
            cboxTenGH.ValueMember = "MaGH";
            SqlParameter[] parameters1 = new SqlParameter[1];
            parameters1[0] = new SqlParameter("@username", Public_variable.Username);
            dt = dservice.ExcuteProcedureGetTable("sp_getTenGH", parameters1, null);
            if (dt.Rows.Count > 0)
            {
                cboxTenGH.DataSource = dt;
            }
            dservice.Disconnect();
        }
        private void loadSP()
        {
            try
            {
                dservice.Connect();


                //do du lieu vào dgview
                SqlParameter[] parameters = new SqlParameter[1];

                parameters[0] = new SqlParameter("@username", Public_variable.Username);
                dt = dservice.ExcuteProcedureGetTable("sp_getSP_User", parameters, null);
                dservice.Disconnect();
                if (dt.Rows.Count > 0)
                {
                    dGV_DSSanPham.DataSource = dt;
                    dGV_DSSanPham.Columns[0].Width = 90;
                    dGV_DSSanPham.Columns[1].Width = 250;
                    dGV_DSSanPham.Columns[2].Width = 120;
                    dGV_DSSanPham.Columns[3].Width = 150;
                    dGV_DSSanPham.Columns[4].Width = 235;
                    dGV_DSSanPham.Columns[5].Visible = false;
                }
                else
                {
                    MessageBox.Show("Bạn chưa có gian hàng hoặc gian hàng của bạn chưa có sản phẩm đăng bán!!!");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Bạn chưa có gian hàng hoặc gian hàng của bạn chưa có sản phẩm đăng bán!!!");
            }
        }

        private Boolean checkGH()
        {
            Boolean flag=false;
            dservice.Connect();
            SqlParameter[] parameters = new SqlParameter[1];
            parameters[0] = new SqlParameter("@username", Public_variable.Username);
            dt = dservice.ExcuteProcedureGetTable("sp_ktraCoGH", parameters, null);
            if (dt.Rows.Count > 0)
            {
                flag = true;
            }

            return flag;
        }

      
        private void btnDangSP_Click(object sender, EventArgs e)
        {
            //đăng sp mới cần ktra user đó có gian hàng chưa
            try
            {
                
            dservice.Connect();
            if (checkGH() == false)
            {
                DialogResult = MessageBox.Show("Bạn chưa có gian hàng - Bạn có muốn đăng ký gian hàng mới không!!!", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                if (DialogResult == DialogResult.OK)
                {
                    frm.frm_ShowFormGianHang();
                }
                else
                {
                    MessageBox.Show("Bạn chưa đăng ký gian hàng nên không thể đăng sản phẩm!!!");
                    frm.frm_ShowFormSP();
                }
            }
            else
            {
                if (txtMaSP.Text != "" && txtTenSP.Text != "" && txtDVTinh.Text != "" && txtDGia.Text != "")
                {
                    SqlParameter[] parameters = new SqlParameter[7];
                    parameters[0] = new SqlParameter("@masp", txtMaSP.Text);
                    parameters[1] = new SqlParameter("@tensp", txtTenSP.Text);
                    parameters[2] = new SqlParameter("@dvtinh", txtDVTinh.Text);
                    parameters[3] = new SqlParameter("@dongia", txtDGia.Text);
                    parameters[4] = new SqlParameter("@magh", cboxTenGH.SelectedValue);
                    parameters[5] = new SqlParameter("@tengh", cboxTenGH.Text);
                    parameters[6] = new SqlParameter("@maloai", cboxLoaiSP.SelectedValue);
                    

                    dservice.ExcuteProcedure("sp_insertSP", parameters, null);
                    MessageBox.Show("Chúc mừng bạn đã đăng bán sản phẩm thành công!!!");
                    loadSP();
                }
                else
                {
                    MessageBox.Show("Thông tin chưa đầy đủ - Vui lòng kiểm tra lại!!!");
                }
            }
                
                
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            try
            {
                for (int i = dGV_DSSanPham.SelectedRows.Count - 1; i >= 0; i--)
                {
                    if (dGV_DSSanPham.SelectedRows[i].Index <= dGV_DSSanPham.Rows.Count - 1)
                    {
                        DialogResult = MessageBox.Show("Bạn có chắc là muốn xóa sản phẩm này không?", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                        if (DialogResult == DialogResult.OK)
                        {
                            int id = Int32.Parse(dGV_DSSanPham.SelectedRows[i].Cells[0].Value.ToString());
                            dservice.Connect();
                            SqlParameter[] parameters = new SqlParameter[1];
                            parameters[0] = new SqlParameter("@id_sp", id);
                            dservice.ExcuteProcedure("sp_deleteSP", parameters, null);

                            MessageBox.Show("Xóa thành công");
                        }
                    }
                }
                loadSP();
                dservice.Disconnect();
            }
            catch
            {
                MessageBox.Show("Không thể xóa");
            }
        }

        private void btnCapNhat_Click(object sender, EventArgs e)
        {
            dservice.Connect();
            SqlParameter[] parameters = new SqlParameter[8];
            parameters[0] = new SqlParameter("@idsp", IDSP_select);
            parameters[1] = new SqlParameter("@masp", txtMaSP.Text);
            parameters[2] = new SqlParameter("@tensp", txtTenSP.Text);
            parameters[3] = new SqlParameter("@dvtinh", txtDVTinh.Text);
            parameters[4] = new SqlParameter("@dongia", txtDGia.Text);
            parameters[5] = new SqlParameter("@magh", cboxTenGH.SelectedValue);
            parameters[6] = new SqlParameter("@tengh", cboxTenGH.Text);
            parameters[7] = new SqlParameter("@maloai", cboxLoaiSP.SelectedValue);


            dservice.ExcuteProcedure("sp_updateSP", parameters, null);
            MessageBox.Show("Chúc mừng bạn đã sửa thông tin sản phẩm thành công!!!");
            loadSP();
        }
    }
}
